Trò chơi Tic-Tac-Toe, game đánh caro full source code
53.448 lượt xem;
1 using Assets.Scripts.Network;
2 using UnityEngine.UI;
3
4 namespace Assets.Scripts.UI
5 {
6 public class Result : BasePanel
7 {
8 public Text label;
9 public Button button;
10
11 public void OnNewGame()
12 {
13 Hide();
14 GameService.NewGame();
15 }
16
17 protected override void Show()
18 {
19 base.Show();
20 button.gameObject.SetActive(!NetworkService.IsConnected || NetworkService.IsMaster);
21 }
22
23 protected override void Start()
24 {
25 base.Start();
26
27 GameService.OnGameResultSignal.AddListener(OnGameResult);
28 NetworkService.OnNewGameStartedSignal.AddListener(OnNewGame);
29 NetworkService.OnDisconnectedFromMasterSignal.AddListener(Hide);
30 }
31
32 protected override void OnDestroy()
33 {
34 base.OnDestroy();
35
36 GameService.OnGameResultSignal.RemoveListener(OnGameResult);
37 NetworkService.OnNewGameStartedSignal.RemoveListener(OnNewGame);
38 NetworkService.OnDisconnectedFromMasterSignal.RemoveListener(Hide);
39 }
40
41 private void OnGameResult(Game game)
42 {
43 switch (game.CurrentState)
44 {
45 case GameState.CrossWin:
46 label.text = "X WIN!";
47 break;
48 case GameState.NoughtWin:
49 label.text = "O WIN!";
50 break;
51 case GameState.Draw:
52 label.text = "DRAW!";
53 break;
54 }
55
56 Show();
57 }
58 }
59 }
2 using UnityEngine.UI;
3
4 namespace Assets.Scripts.UI
5 {
6 public class Result : BasePanel
7 {
8 public Text label;
9 public Button button;
10
11 public void OnNewGame()
12 {
13 Hide();
14 GameService.NewGame();
15 }
16
17 protected override void Show()
18 {
19 base.Show();
20 button.gameObject.SetActive(!NetworkService.IsConnected || NetworkService.IsMaster);
21 }
22
23 protected override void Start()
24 {
25 base.Start();
26
27 GameService.OnGameResultSignal.AddListener(OnGameResult);
28 NetworkService.OnNewGameStartedSignal.AddListener(OnNewGame);
29 NetworkService.OnDisconnectedFromMasterSignal.AddListener(Hide);
30 }
31
32 protected override void OnDestroy()
33 {
34 base.OnDestroy();
35
36 GameService.OnGameResultSignal.RemoveListener(OnGameResult);
37 NetworkService.OnNewGameStartedSignal.RemoveListener(OnNewGame);
38 NetworkService.OnDisconnectedFromMasterSignal.RemoveListener(Hide);
39 }
40
41 private void OnGameResult(Game game)
42 {
43 switch (game.CurrentState)
44 {
45 case GameState.CrossWin:
46 label.text = "X WIN!";
47 break;
48 case GameState.NoughtWin:
49 label.text = "O WIN!";
50 break;
51 case GameState.Draw:
52 label.text = "DRAW!";
53 break;
54 }
55
56 Show();
57 }
58 }
59 }